package com.yun.image.yunimagebackend.exception;

import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.exceptions.ValidateException;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;

import java.util.Collection;
import java.util.Map;

/**
 * @Author: panzhimin
 * @Date: 2021/8/20
 * @Description:断言工具类
 */
public class AssertUtil {

    /**
     * 断言字符串不为空
     * @param str
     * @param message
     */
    public static void notBlank(String str,String message){
        if(StrUtil.isBlank(str)){
            throw new ValidateException(message);
        }
    }

    /**
     * 断言不为空
     * @param object
     * @param message
     */
    public static void notNull(Object object,String message){
        if(object==null){
            throw new ValidateException(message);
        }
    }

    /**
     * 断言为true
     * @param flag
     * @param message
     */
    public static void isTrue(boolean flag,String message){
        if(!flag){
            throw new ValidateException(message);
        }
    }

    /**
     * 断言为false
     * @param flag
     * @param message
     */
    public static void isFalse(boolean flag,String message){
        if(flag){
            throw new ValidateException(message);
        }
    }

    /**
     * 断言集合不为空
     * @param collection
     * @param message
     */
    public static void notEmptyList(Collection<?> collection, String message){
        if(CollectionUtil.isEmpty(collection)){
            throw new ValidateException(message);
        }
    }
    /**
     * 断言集合为空
     * @param collection
     * @param message
     */
    public static void emptyList(Collection<?> collection, String message){
        if(CollectionUtil.isNotEmpty(collection)){
            throw new ValidateException(message);
        }
    }

    /**
     * 断言数组不为空
     * @param array
     * @param message
     */
    public static <T> void notEmptyArray(T[] array, String message){
        if(ArrayUtil.isEmpty(array)){
            throw new ValidateException(message);
        }
    }

    /**
     * 断言map不为空
     * @param map
     * @param message
     */
    public static <K,V> void notEmptyMap(Map<K,V> map, String message){
        if(MapUtil.isEmpty(map)){
            throw new ValidateException(message);
        }
    }
}
